package com.impak.infoot.transport

import com.impak.infoot.domain.foot.Team

/**
 * Interface for the service TeamService transport layer
 * @author nzouabi
 *
 */
interface ITeamService {
	
	/**
	 * [TEA_1]
	 * This service returns a team given its Id
	 * @param teamId teamId
	 * @return Instance of <code>Team</code>
	 */
	Team getTeam(Long teamId)
	
	/**
	 * [TEA_2]
	 * This service returns teams that are playing in the current season
	 * @param seasonId seasonId
	 * @return Instance list of <code>Team</code>
	 */
	List<Team> getSeasonTeams(Long seasonId)
	
	/**
	 * [TEA_3]
	 * This service returns the team the given player playing with for a given date
	 * @param playerId playerId
	 * @param date A date when the player is playing with the team ( when null, the current date is used )
	 * @return Instance of <code>Team</code>
	 */
	Team getPlayerTeam(Long playerId, Calendar date)
	
	/**
	 * [TEA_4]
	 * This service returns the 2 teams that played a given match
	 * @param matchId matchId
	 * @return List of 2 Teams of type <code>Team</code>
	 */
	List<Team> getMatchTeams(Long matchId)

}